﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using Computer_Manager.BUS;
using Computer_Manager.DTO;
using System.Security.Cryptography;
namespace Computer_Manager.GUI
{
    public partial class frmChangePass : DevExpress.XtraEditors.XtraForm
    {
        public frmChangePass()
        {
            InitializeComponent();
        }
        public int idu { get; set; }
        private void btnSave_Click(object sender, EventArgs e)
        {
            DTO_user user = new DTO_user();
            BUS_user process = new BUS_user();
            user.id_user = idu;
            var dt = process.GetByID(user);
            if (txtPassOld.Text.Trim() == "")
            {
                XtraMessageBox.Show("Mật khẩu hiện không được trống", "Thông tin", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtPassOld.Focus();
                return;
            }
            if (txtPass.Text.Trim() == "")
            {
                XtraMessageBox.Show("Mật khẩu mới không được trống", "Thông tin", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtPass.Focus();
                return;
            }
            else if (txtPass.Text.Trim() == txtRepass.Text.Trim())
            {
                if (MD5(txtPassOld.Text.Trim()) == dt.Rows[0]["password"].ToString())
                {
                    user.password = MD5(txtPass.Text.Trim());
                    if (process.user_ChangePass(user))
                    {
                        XtraMessageBox.Show("Đổi mật khẩu thành công", "Thông tin", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Close();
                    }
                    else
                    {
                        return;
                    }
                }
                else
                {
                    XtraMessageBox.Show("Mật khẩu hiện tại không đúng", "Thông tin", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    txtPassOld.Focus();
                    return;
                }
            }
            else
            {
                XtraMessageBox.Show("Mật khẩu mới và xác nhận mật khẩu không đúng", "Thông tin", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            

        }
        //Hàm mã hoá MD5
        public static string MD5(string x)
        {
            MD5 md5 = new MD5CryptoServiceProvider();

            //compute hash from the bytes of text
            md5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(x));

            //get hash result after compute it
            byte[] result = md5.Hash;

            StringBuilder strBuilder = new StringBuilder();
            for (int i = 0; i < result.Length; i++)
            {
                //change it into 2 hexadecimal digits
                //for each byte
                strBuilder.Append(result[i].ToString("x2"));
            }

            return strBuilder.ToString();
        }
    }
}